home *** CD-ROM | disk | FTP | other *** search
- Short: Library to ctrl the MC68K MMUs, beta
- Author: thor@math.tu-berlin.de (Thomas Richter)
- Uploader: thor@math.tu-berlin.de (Thomas Richter)
- Version: 0.26
- Type: util/libs
- Requires: Os 2.04, a 68020/68851, 68030, 68040 or 68060 with a working MMU
-
- -----------------------------------------------------------------------------
- Who may use this software:
-
- Runs on all Amigas, Os 2.04 required. However, it *does not* work if the P5
- ppc.library is installed. This is because this library hacks on the MMU tables
- itself, without any kind of interface or any access control mechanism.
-
- The mmu.library works fine with WarpOs, though.
-
- -----------------------------------------------------------------------------
-
- Release 0.26
- ------------
-
- - Fixed a bug in the exception handling, forgot to restore a6.
- - Fixed the return value of RebuildTree(). It's now TRUE on
- success, not DOSTRUE.
- - Fixed a bug in the table builder, merged sub-tree were released
- incorrectly.
- - Added the WithoutMMU() LVO entry.
- - Removed the AllocLineMem() LVO, this one was useless.
-
- Release 0.25
- ------------
-
- - Debugged 060 exception handler again. Found only one bug, ROM
- emulation was broken.
- - Enhanced AbsExecBase accesses - does no longer block interrupts
- unnecessary.
- - Fixed parts of the exception handler to read the faulty instruction
- from the correct function code space.
- - Added a complicated test for the EC030 processor that should
- finally work.
- - Enabled the MMULib internal exception handler test.
- - Removed all accesses to the ppc.library and reserved entries.
- PPC.lib compatibility is no longer an issue for me. The MMU.lib
- is WarpOs-compatible, though, as long as the system isn't
- infected by Ralph's "software".
- - Added a safety test in the MMUCacheTest program to avoid
- hangs.
-
- -----------------------------------------------------------------------------
-
- Compatibility warnings and bad software:
-
- - The MMU tables generated by the "CPU FastROM" command, an official CBM tool,
- are simply wrong if run on a 030 processor. Chip memory is marked as
- "cacheable", which is plain wrong. Already spoke to Michael Sinz who agrees
- in that point. Don't use it, run "MuFastRom" instead.
-
- - The MMU tables build by "SetCPU FastRom" are not very well suited for
- MuForce. The MMU library will replace the table layout by something more
- adapted.
-
- Since these programs may install a "bogus" exception vector, you shouldn't
- run both programs with the "FastROM" option. If you absolutely want to do,
- run them *before* installing any MMU.lib related program and COP - remember,
- you have been warned. "MuFastROM" will do better once the library is finished.
-
-
- - CMQ060.lha from the Aminet: This program uses the MOVE16 instruction to
- "speed up" the copy mem routines of the Os. Besides that the speedup is
- minimal, you should be informed that this instruction is not fully
- supported by the Amiga hardware. A MOVE16 into the chip memory could yield
- to "strange and wonderful things", and may or may not work. Its burst
- accesses simply don't fit into the DMA access mechanism of the Amiga
- custom chips. (Note that no other instruction will try burst accesses
- into non-cacheable memory!)
- Moreover, if a MOVE16 crashes, the mmu.library is out of buisiness, it will
- simply guru. Do not run this program!
-
- MOVE16 is one of the non-supported instructions in an Amiga system, others
- are TAS, CAS and CAS2 (which are of little use in a single processor system).
-
- For more detailed information of MOVE16, check either the enforcer.guide or
- the motorola documentation, I'm not making this up, and this is not
- mmu.library related.
-
-
-
- Release 0.21
- ------------
-
- - Tiny adjustments of the 060 handler of the library, now tested.
- - Forgot to fill in the SSP in the exception handler, this caused
- MuForce crashes.
- - INTRO option of MuForce was broken. I thought this is simply too
- easy to make mistakes, but I was wrong. *SIGH*
- - Added more options for "MuFastRom".
- - Included up-to-date version of MMUCacheTest... Ooops.
- - Included the MuOmniSCSIPatch, with the friendly permisson of
- Ralph Babel. For details, read the guide of this program.
- - Forgot to setup the dfc correctly for single page flushes.
- This could have caused hangs in case of zero-page access, for
- example.
-
- This release has been successfully tested on a 030, a 040 and a 060. Should
- work fine for your system, too, as long as the ppc.library is not used.
-
- Release 0.20
- ------------
-
- Just too much changed: To keep the story short:
-
- - Lots of bug fixes.
- - Exception handlers have been written and tested.
- - MuTools have been written:
- MuFastROM remaps the ROM to RAM,
- MuFastZero remaps the autovectors from chip to fast
- without touching the VBR.
- MuForce is an option compatible enforcer replacement.
- MuScan prints the MMU table.
-
- The release 0.20 is the first "fully working modulo bugs"
- version.
-
- Known Bugs:
- -----------
-
- The MMU table manager rebuilds currently the MMU tables for a
- complete memory block even if only a minor sub-block was changed.
- Therefore, it may take longer to build the MMU table than absolutely
- required.
-
- The MMU library builds currently 68030 MMU tables with the
- REPAIRABLE flag set less efficient than it could.
-
- The library does not yet provide a mechanism to adjust the page
- size, even though it is flexible enough to adapt to any page size
- possible. This feature will be added in the form of tags to the
- CreateContext() call.
-
- The library does not yet contain a workaround for a 040 firmware
- bug: If an illegal, line A, chk or unimplemented floating point
- instruction is located at the last 16 bits of a page and the next
- page is not available, the 040 generates an access fault instead
- of the proper exception. The fault address is the address of the
- missing page, and the PC points to the instruction in the preceeding
- page.
-
- These bugs will be fixed within the next releases of the library, including
- all the other bugs you may find.
-
- -----------------------------------------------------------------------------
-
- Special thanks goes to:
-
- -Ralph Babel for giving information about the CachePreDMA/CachePostDMA
- functions.
- -Carsten Schlote for starting development of a mmu.library aware 68060.lib.
- -Michael Sinz (a real BIG thank you!) for discussing a lot of details of
- CachePreDMA/CachePostDMA, for sending me the sources of these functions
- in his 68040, and especially - and that's really great - for making the
- Enforcer sources available and for allowing me to reuse the exception
- handler of the Enforcer. This will happen in one of the next releases.
- -Bjoern Schmidt for allowing me to run some tests on his 060.
- -Werner Müller for his 040 based system.
- -All the testers for running tests and sending me detailed information about
- their systems.
-
- Thank you to all of you, this project won't clearly possible without your
- support!
-
- Special thanks does not go to:
-
- Ehem, fill in... Guess you know.
-
- -----------------------------------------------------------------------------
- Warning: This is "work in progress", it's by no means complete.
-
- I'm in the urge need for testers and co-authors. Especially MC68060 systems
- are very welcome for testing.
-
- Please check the "ReadMe" in the archive for details how to contact me.
- -----------------------------------------------------------------------------
-
- Purpose and goal of this library:
-
- The mmu.library is a planned basis for MMU (memory management) related
- functions the MC68K family can perform. Up to now certain hacks are available
- that program the MMU themselves (Enforcer,CyberGuard,GuardianAngle,SetCPU,
- Shapeshifter,VMM,GigaMem...).
- It's therefore not unexpected that these tools conflict with each other.
- There's up to now no Os support for the MMU at all - the gap this mmu.library
- is planned to fill.
-
- The goal is to provide a basis of functions to address and program the MMU in
- a hardware independent, Os friendly fashion. Hence, a future version of the
- Enforcer will work together with virtual memory, and others.
-
- The mmu.library is also the basis for a virtual memory project, the
- memory.library. Even though the mmu.library does not provide virtual memory
- itself, it builds the basics to allow an easy implementation and to avoid the
- hacks required by other implementations so far.
-
- For the design details of the mmu.library, consider reading the autodocs in
- this archive. Everything is still VERY preliminary, there's still room for
- changes and suggestions.
-
- ------------------------------------------------------------------------------
-
- This distribution contains the full sources written so far, the documentation
- and some C sample sources how to use the library, as well as the includes
- and autodocs written so far. Check the ReadMe for details. Even if you're not
- a developer, you could help me a lot by running a test program on your
- computer and sending me the results. For details about testing - this
- became a bit trickier - please consider the ReadMe.
-
- ------------------------------------------------------------------------------
- The mmu.library development group:
-
- This is a loose, non-commercial group of developers that support the
- mmu.library by their work. If you want to join, please lemme know.
-
- ------------------------------------------------------------------------------
-
- The THOR-Software Licence (v2, 24th June 1998)
-
-
- This License applies to the computer programs known as the "mmu.library"
- and its sources. The "Program", below, refers to such program. The
- "Archive" refers to the package of distribution, as prepared by the author
- of the Program, Thomas Richter. Each licensee is addressed as "you".
-
-
-
- The Program and the data in the archive are freely distributable
- under the restrictions stated below, but are also Copyright (c)
- Thomas Richter.
-
- Distribution of the Program, the Archive and the data in the Archive by a
- commercial organization without written permission from the author to any
- third party is prohibited if any payment is made in connection with such
- distribution, whether directly (as in payment for a copy of the Program) or
- indirectly (as in payment for some service related to the Program, or
- payment for some product or service that includes a copy of the Program
- "without charge"; these are only examples, and not an exhaustive enumeration
- of prohibited activities).
-
-
- However, the following methods of distribution
- involving payment shall not in and of themselves be a violation of this
- restriction:
-
-
- (i) Posting the Program on a public access information storage and
- retrieval service for which a fee is received for retrieving information
- (such as an on-line service), provided that the fee is not
- content-dependent (i.e., the fee would be the same for retrieving the same
- volume of information consisting of random data).
-
-
- (ii) Distributing the Program on a CD-ROM, provided that
-
- a) the Archive is reproduced entirely and verbatim on such CD-ROM, including
- especially this licence agreement;
-
- b) the CD-ROM is made available to the public for a nominal fee only,
-
- c) a copy of the CD is made available to the author for free except for
- shipment costs, and
-
- d) provided further that all information on such CD-ROM is redistributable
- for non-commercial purposes without charge.
-
-
- Redistribution of a modified version of the Archive, the Program or the
- contents of the Archive is prohibited in any way, by any organization,
- regardless whether commercial or non-commercial. Everything must be kept
- together, in original and unmodified form.
-
-
-
-
- Limitations.
-
-
- THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO
- WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE
- RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
- THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
- SERVICING, REPAIR OR CORRECTION.
-
-
- IF YOU DO NOT ACCEPT THIS LICENCE, YOU MUST DELETE THE PROGRAM, THE ARCHIVE
- AND ALL DATA OF THIS ARCHIVE FROM YOUR STORAGE SYSTEM. YOU ACCEPT THIS
- LICENCE BY USING OR REDISTRIBUTING THE PROGRAM.
-
-
- Thomas Richter
-
- -----------------------------------------------------------------------------
-
- So long,
- Thomas (February 1999)
-
-
- ============================= Archive contents =============================
-
- Original Packed Ratio Date Time Name
- -------- ------- ----- --------- -------- -------------
- 628 270 57.0% 27-Feb-99 23:59:36 +Autodocs.info
- 31552 11899 62.2% 28-Mar-99 16:34:34 +exceptions.doc
- 24158 9205 61.8% 27-Feb-99 23:47:00 +implementation
- 14841 4911 66.9% 26-Sep-98 23:49:10 +memory.doc
- 76189 22148 70.9% 28-Mar-99 01:20:58 +mmu.doc
- 628 267 57.4% 27-Feb-99 23:59:36 +C_Sources.info
- 13347 3424 74.3% 15-Mar-99 00:08:34 +MMUCacheTest.c
- 19775 4716 76.1% 28-Mar-99 16:30:58 +MuFastRom.c
- 27222 6698 75.3% 28-Mar-99 16:30:48 +MuFastZero.c
- 15412 3532 77.0% 07-Feb-99 01:12:48 +MuScan.c
- 3338 899 73.0% 07-Feb-99 01:12:18 +SCSIDMATest.c
- 628 269 57.1% 27-Feb-99 23:59:36 +Include.info
- 3911 961 75.4% 28-Mar-99 16:29:38 +mmu_protos.h
- 3623 1210 66.6% 28-Mar-99 16:29:38 +alerts.h
- 3688 1230 66.6% 28-Mar-99 16:29:38 +alerts.i
- 2021 636 68.5% 28-Mar-99 16:29:38 +config.h
- 2385 694 70.9% 28-Mar-99 16:29:38 +config.i
- 7445 2722 63.4% 28-Mar-99 16:29:38 +context.h
- 7540 2741 63.6% 28-Mar-99 16:29:40 +context.i
- 9975 3423 65.6% 28-Mar-99 16:29:40 +exceptions.h
- 10010 3438 65.6% 28-Mar-99 16:29:40 +exceptions.i
- 1767 567 67.9% 28-Mar-99 16:29:40 +mmubase.h
- 1885 596 68.3% 28-Mar-99 16:29:40 +mmubase.i
- 3846 1377 64.1% 28-Mar-99 16:29:42 +mmutags.h
- 3912 1407 64.0% 28-Mar-99 16:29:42 +mmutags.i
- 2114 689 67.4% 28-Mar-99 16:29:42 +mmu_lib.fd
- 5188 1094 78.9% 28-Mar-99 16:29:42 +mmu_pragmas.h
- 141 106 24.8% 28-Mar-99 16:29:42 +mmu.h
- 1628 866 46.8% 01-Mar-99 17:32:30 +LiesMich
- 6980 1291 81.5% 01-Mar-99 16:47:22 +MMU.lib
- 6996 1289 81.5% 01-Mar-99 16:50:36 +MMU_040.lib
- 37976 3988 89.4% 01-Mar-99 17:07:00 +MMU_PPC.a
- 12204 1437 88.2% 01-Mar-99 17:09:14 +MMU_WOS.lib
- 1535 789 48.5% 01-Mar-99 17:46:08 +ReadMe
- 38684 18676 51.7% 28-Mar-99 16:37:06 +mmu.library
- 12068 5066 58.0% 28-Mar-99 21:40:24 +MMULib.readme
- 788 350 55.5% 27-Feb-99 23:59:36 +MuTools.info
- 3224 2005 37.8% 28-Mar-99 21:31:22 +MuFastRom
- 11347 4582 59.6% 28-Mar-99 21:31:24 +MuFastRom.guide
- 523 273 47.8% 28-Mar-99 21:31:24 +MuFastRom.guide.info
- 1080 463 57.1% 28-Mar-99 21:31:22 +MuFastRom.info
- 4292 2525 41.1% 28-Mar-99 21:31:24 +MuFastZero
- 12677 5105 59.7% 28-Mar-99 21:31:24 +MuFastZero.guide
- 523 272 47.9% 28-Mar-99 21:31:24 +MuFastZero.guide.info
- 1081 637 41.0% 28-Mar-99 21:31:24 +MuFastZero.info
- 11844 6124 48.2% 28-Mar-99 21:31:24 +MuForce
- 81777 24066 70.5% 28-Mar-99 21:31:24 +MuForce.guide
- 523 274 47.6% 28-Mar-99 21:31:26 +MuForce.guide.info
- 1431 888 37.9% 28-Mar-99 21:31:24 +MuForce.info
- 1444 898 37.8% 03-Mar-99 20:07:24 +MuForce_Off.info
- 1426 888 37.7% 28-Mar-99 21:31:22 +MuForce_Window.info
- 956 737 22.9% 28-Mar-99 21:31:26 +MuMove4K
- 1703 825 51.5% 28-Mar-99 21:31:22 +MuMove4K.reade
- 856 373 56.4% 28-Mar-99 21:31:24 +MuMove4K.reade.info
- 1096 793 27.6% 28-Mar-99 21:31:26 +MuOmniScsiPatch
- 10822 4482 58.5% 28-Mar-99 21:31:26 +MuOmniScsiPatch.guide
- 523 274 47.6% 28-Mar-99 21:31:26 +MuOmniScsiPatch.guide.info
- 546 277 49.2% 28-Mar-99 21:31:26 +MuOmniScsiPatch.info
- 2524 1474 41.6% 28-Mar-99 21:31:24 +MuScan
- 18394 6653 63.8% 28-Mar-99 21:31:26 +MuScan.guide
- 523 275 47.4% 28-Mar-99 21:31:26 +MuScan.guide.info
- 1062 526 50.4% 28-Mar-99 21:31:24 +MuScan.info
- 2964 1888 36.3% 28-Mar-99 21:31:22 +MuSetCacheMode
- 15089 5721 62.0% 28-Mar-99 21:31:22 +MuSetCacheMode.guide
- 523 272 47.9% 28-Mar-99 21:31:22 +MuSetCacheMode.guide.info
- 1277 598 53.1% 28-Mar-99 21:31:22 +MuSetCacheMode.info
- 368 308 16.3% 28-Mar-99 21:31:22 +NoMuMove4K
- 21262 8777 58.7% 28-Mar-99 16:33:14 +ReadMe
- 523 276 47.2% 27-Feb-99 23:59:36 +ReadMe.info
- 628 272 56.6% 28-Feb-99 00:00:04 +Shell_Only.info
- 16900 9346 44.6% 15-Mar-99 00:08:26 +MMUCacheTest
- 728 426 41.4% 17-Sep-98 21:43:20 +PrintTTX
- 1320 869 34.1% 15-Nov-98 17:56:44 +SCSIDMATest
- 260 209 19.6% 04-Oct-98 00:27:58 +TestMMU
- -------- ------- ----- --------- --------
- 650067 219532 66.2% 30-Mar-99 21:06:58 74 files
-